// app.js
App({
  onLaunch() {
    // 展示本地存储能力
    // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorageSync.html
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html
    wx.setStorageSync('logs', logs)

    // 登录
    // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })

    // 初始化启动广告
    this.initLaunchAd()
  },

  // 初始化启动广告
  initLaunchAd() {
    // 创建激励视频广告实例
    // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/ad/wx.createRewardedVideoAd.html
    if (wx.createRewardedVideoAd) {
      const rewardedVideoAd = wx.createRewardedVideoAd({
        adUnitId: 'adunit-rewardvideo-test' // 测试广告位ID
      })
      
      // 监听广告关闭事件
      // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.onClose.html
      rewardedVideoAd.onClose((res) => {
        if (res && res.isEnded) {
          console.log('启动广告播放完成')
        } else {
          console.log('启动广告被跳过')
        }
      })
      
      // 监听广告加载失败
      // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.onError.html
      rewardedVideoAd.onError((err) => {
        console.log('启动广告加载失败', err)
      })
      
      // 延迟1秒后显示广告，确保小程序完全启动
      setTimeout(() => {
        // 显示激励视频广告
        // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.show.html
        rewardedVideoAd.show().catch(() => {
          // 广告显示失败，重新加载
          // 官方文档: https://developers.weixin.qq.com/miniprogram/dev/api/ad/RewardedVideoAd.load.html
          rewardedVideoAd.load().then(() => {
            return rewardedVideoAd.show()
          }).catch(() => {
            console.log('启动广告显示失败')
          })
        })
      }, 1000)
    }
  },

  globalData: {
    userInfo: null,
    selectedVideo: null // 存储选中的视频信息
  }
})